﻿
using System.Drawing;
namespace Graphix
{
    public class StringPoint
    {
        public string String { get; set; }
        public double Point { get; set; }
    }

    public interface IGraphix
    {
        void SetBackground(Color color);

        //offset od -1 do 1
        void Title(string title, Horizontal position = Horizontal.Center, Horizontal alignment = Horizontal.Center, float offset = 0); //1
        void SecondTitle(string title, Horizontal alignment); //13

        void AddInformation(string info); //3 //4
        void XTitle(string title); //9
        void YTitle(string title, bool ignoreMove = true); //5
        void AddMarker(double position, string title = "", bool changeToTop = false, Orientation orientation = Orientation.Horizontal, Vertical vertical = Vertical.Middle); //6 //16 //todo: typ dotted/line
        void AddTitleMarginMarker(string title, double position, bool moreMarkers = false); //15
        void AddTitleMarginMarkers(StringPoint[] array);

        void SetupXLabels(string[] labels, double min = 0, double max = 100, double tick = 10, Orientation orientation = Orientation.Horizontal);//7
        void SetupXLabels(double min, double max, Orientation orientation = Orientation.Horizontal);//7
        void SetupX2Labels(string[] labels, int fontSize, double min = 0.0, double max = 1.0, Orientation orientation = Orientation.Horizontal);
        void SetupX2Labels(double min, double max, Orientation orientation = Orientation.Horizontal);

        void SetupYLabels(string[] labels, Orientation orientation = Orientation.Horizontal);//8
        void SetupYLabels(double min, double max, Orientation orientation = Orientation.Horizontal);//8
        void SetupY2Labels(string[] labels, double min = 0, double max = 1, Orientation orientation = Orientation.Horizontal);
        void SetupY2Labels(double min, double max, Orientation orientation = Orientation.Horizontal);

        void DrawCurve(PointF[] points, string objectName, ValueType valueTypes = ValueType.None, Color color = default(Color), float penSize = 1);//17//18 todo: type, wzgledem czego?
    }
}
